package Juego.ElementoJuego.Enemigo;

/**
 * Modela un comportamiento general que usa luego las clases que la heredan.
 * 
 */

import javax.swing.ImageIcon;

import Juego.ElementoJuego.ElementoJuego;
import Juego.ElementoJuego.Mario.Personaje;
import Juego.EntidadesVarias.IA;

public abstract class Enemigo extends ElementoJuego{
	protected IA cerebro;
	protected ImageIcon murio;
	
	protected Enemigo(String nombre){
		super("Enemigo/"+nombre+".gif");
		cerebro = new IA();
	}

	public boolean esTransitable(){
		return false;
	}

	public void cambiarDireccion(){
		cerebro.cambiarDireccion();
	}

	/** Retorna el proximo valor que puede tomar una posicion en la coordenada x */
	public int proximoValorX(){
		return cerebro.darProxPosicion(pos.getX());
	}

	/** 
	 * Metodo que permite a los powers moverse, 
	 * tanto en la parte grafica como en la logica del juego 
	 */
	public void caminar(){
		cerebro.darPosicion(pos, repr);
	}
	
	abstract public int getVidas();
	
	abstract public void colision(Personaje mario);

	abstract public int matoMario();
}